草庐IT

php - 多个路由的相同 Laravel 资源 Controller

全部标签

ruby-on-rails - ActiveRecord 急切加载多个 belongs_to 关联

问题我有以下ActiveRecord模型:classPersonbelongs_to:favourite_car,class_name:'Car'belongs_to:business_car,class_name:'Car'belongs_to:home_car,class_name:'Car'end当我想访问所有这三个关联时,它会生成三个选择查询:SELECT*FROMcarsWHEREcars.id=?这本质上是N+1问题。理想情况下,我希望它只生成一个表单查询SELECT*FROMcarsWHEREcars.idIN(?,?,?)可能的解决方案我可以将其移动到一个has_man

ruby-on-rails - RoR - 哪个是首选 - 机架中间件或主动 Controller 过滤器?

对于最新版本的RubyonRails(问这个问题时是4),实现修改请求/响应(例如身份验证机制)的代码的首选方法是什么。我看到许多网站和教程提倡Rackmiddleware虽然似乎可以通过ActionControllerfiltermethods实现相同的功能.除了讨论首选方法外,是否可以提供每种方法的优缺点比较?在我最初的调查中,ActionController过滤器方法似乎更紧密地集成到RoR应用程序中,这样您就可以绕过在某些Controller端点上运行某些过滤器,而中间件似乎无法拥有该级别的控制。这样的细节会很棒。谢谢! 最佳答案

ruby-on-rails - 从 rails 中的 url 获取 Controller 和操作信息

如果有相应的路由规则,我如何获取有关任何(不仅是当前)url的Controller和操作名称的信息?例如:function_i_need('/pages/5')返回{:controller=>'page',:action=>'show',:id=>5}UPD:已找到答案Railsparseurltohash(Routes) 最佳答案 你可以这样做:Rails.application.routes.recognize_path"/pages/5" 关于ruby-on-rails-从rail

ruby-on-rails - 如何禁用特定 Controller 的 ActiveModel::Serializers?

我们正在使用active_model_serializers-0.8.1在Rails应用程序中。该应用程序有一些特定于API的Controller以类似于rails-api的方式从ActionController::Metal继承。的ActionController::API.好吧,我们只想对上面提到的APIController使用ActiveModel::Serializers。这可能吗?注意:如documentation中所述可以通过替换明确避免使用序列化程序渲染:json与:render:json=>@your_object.to_json我们正在寻求一种比上述更优雅的解决方案。

ruby - 产生多个参数的链接枚举器

我正在尝试弄清楚Ruby如何处理产生多个参数的链式枚举器。看看这个片段:a=['a','b','c']a.each_with_index.select{|pr|ppr}#prints:#["a",0]#["b",1]#["c",2]a.each_with_index.map{|pr|ppr}#prints:#"a"#"b"#"c"为什么select将参数作为数组生成,而map将它们作为两个单独的参数生成? 最佳答案 尝试:a.each_with_index.map{|pr,last|p"pr:#{pr}last:#{last}"}m

ruby - 在 collection_select rails 中选择多个选项

我知道如何组合一个从模型中获取值的简单选择框"PleaseSelectaSector")%>我的问题是如何允许用户选择多个选项,然后将它们存储在模型中。我知道我需要使用:multiple=>true但不确定语法通常对于一个模型的多个条目,我会使用accepts_nested_attributes_for,但我认为我不需要对这个例子这样做是否正确?谢谢 最佳答案 经过一些尝试和错误后确定"PleaseSelectaSector"},{:multiple=>true})%>让我选择多个选项

ruby-on-rails - 如何以一种 rails 形式处理多个模型?

我有以下型号classSurvey我的Controller:defnew@survey=Survey.newsurvey_section=@survey.survey_sections.buildsurvey_section.questions.buildenddefcreate@survey=Survey.new(survey_params)if@survey.saveredirect_to@survey,notice:'Super'elserender'new'endenddefsurvey_paramsparams.require(:survey).permit(:title,:

ruby-on-rails - 自定义 RESTful 资源的 url_for(复合键;不仅仅是 id)

给定以下资源定义:map.resources:posts,:except=>[:show]map.post'/:year/:month/:slug,:controller=>:posts,:action=>:show我可以让url_for为我工作,使用这个语法:'2010',:month=>'02',:slug=>'test')%>但是有没有办法让它工作呢?目前它抛出这个错误:Noroutematches{:year=>#,:controller=>"posts",:action=>"show"}显然它将@post对象传递给第一个路由参数(看起来像一个Rails错误...)。但是我可以

ruby-on-rails - rails 4 Controller 的未定义方法 `raw'

目前,我正在将我的应用程序从Rails3.2升级到Rails4。当我导航到特定选项卡时,出现以下错误:undefinedmethod`raw'for#我的代码:vacant.tenant=raw("Vacant")vacant.lease_start_date=raw(" ")vacant.rent_end=raw(" ")vacant.base_rent_monthly_amount=raw("")vacant.base_rent_annual_psf=raw("")vacant.options=raw("")vacant.security_deposit_amo

ruby-on-rails - 如何使用 Ruby on Rails 将数据从 Controller 传递到模型?

如何将数据从Controller传递到模型?在我的application_controller中,我获取用户的位置(州和城市)并包含一个before_filter以使其在我的所有Controller中都可以通过访问before_filter:communitydefcommunity@city=request.location.city@state=request.location.state@community=@city+@stateend然后我尝试通过以下方式将Controller中检索到的数据添加到模型中:before_save:add_communitydefadd_comm